﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Web.UI.WebControls;
using Provausio.Common.Utility.Extensions;

namespace Provausio.Common.Utility
{
    public static class Csv
    {
        public static List<T> CsvToList<T>(StreamReader csv)
        {
            throw new NotImplementedException();
            var items = new List<T>();
            return items;
        }

        public static DataSet CsvToDataSet(StreamReader csv, bool hasHeaders)
        {
            throw new NotImplementedException();
            return null;
        }

        
        //public static void SaveGridToCsv<T>(GridView gv)
        //{
        //    Response.Clear();
        //    Response.Buffer = true;
        //    Response.AddHeader("content-disposition",
        //     "attachment;filename=GridViewExport.csv");
        //    Response.Charset = "";
        //    Response.ContentType = "application/text";

        //    DataTable objDt = ((IList<T>)gv.DataSource).ToDataTable();
        //    var columnCount = objDt.Columns.Count;
        //    var sb = new StringBuilder();
        //    sb.Append(string.Format("Report Date: {0}", DateTime.Now));
        //    sb.Append("\r\n\r\n");
        //    //create header
        //    for (var i = 0; i < columnCount; i++)
        //    {
        //        sb.Append(objDt.Columns[i]);
        //        if (i < columnCount - 1)
        //        {
        //            sb.Append(",");
        //        }
        //    }
        //    //append new line
        //    sb.Append("\r\n");

        //    //create data
        //    foreach (DataRow row in objDt.Rows)
        //    {
        //        for (var i = 0; i < columnCount; i++)
        //        {
        //            sb.Append(row[i].ToString());
        //            if (i < columnCount - 1)
        //            {
        //                sb.Append(",");
        //            }
        //        }
        //        sb.Append("\r\n");
        //    }


        //    var results = sb.ToString();
        //    Response.Output.Write(results);
        //    Response.Flush();
        //    Response.End();
        //}

        private static int GetFirstIndex(IList<string> headers, string columnName)
        {
            throw new NotImplementedException();
            for (var i = 0; i < headers.Count(); i++)
            {
                if (headers[i]
                    .Replace(";", "")
                    .Trim()
                    .ToLower() == columnName.ToLower()) return i;
            }
            return -1;
        }
    }
}
